Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_map_overlay_sources.py

Displaying Raw • Download


tests/backend/test_map_overlay_sources.py e5756d7ab065475a18acdcafc008a767fcff87e0 (e5756d7a) Text, 3.51 KB

T8b949e# SPDX-License-Identifier: 0BSD

Tff7b72import T7ee787pytest

Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787map_overlay_sources Tff7b72import Tb4b4b4(
Te6edf3OverlaySourceParseErrorTb4b4b4,
Te6edf3parse_create_payloadTb4b4b4,
Te6edf3parse_nomadnet_file_urlTb4b4b4,
Te6edf3parse_rngit_repo_urlTb4b4b4,
Tb4b4b4)

Te6edf3HASH Tff7b72= Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72* T79c0ff32


Tff7b72def Td2a8fftest_parse_nomadnet_file_url_variantsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3spec Tff7b72= Te6edf3parse_nomadnet_file_urlTb4b4b4(Ta5d6fffTa5d6ff"Tffd700{Te6edf3HASHTffd700}Ta5d6ff:/file/maps/layer.geojsonTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3specTff7b72.Td2a8ffkind Tff7b72== Ta5d6ff"Ta5d6ffnomadnet_fileTa5d6ff"
Tff7b72assert Te6edf3specTff7b72.Td2a8ffdestination_hash Tff7b72== Te6edf3HASH
Tff7b72assert Te6edf3specTff7b72.Td2a8ffpath_or_repo_path Tff7b72== Ta5d6ff"Ta5d6ff/file/maps/layer.geojsonTa5d6ff"

Te6edf3spec2 Tff7b72= Te6edf3parse_nomadnet_file_urlTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffnomadnet://Tffd700{Te6edf3HASHTffd700}Ta5d6ff:/file/a.kmlTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3spec2Tff7b72.Td2a8ffpath_or_repo_path Tff7b72== Ta5d6ff"Ta5d6ff/file/a.kmlTa5d6ff"


Tff7b72def Td2a8fftest_parse_nomadnet_rejects_traversalTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4) Tff7b72as Te6edf3excTb4b4b4:
Te6edf3parse_nomadnet_file_urlTb4b4b4(Ta5d6fffTa5d6ff"Tffd700{Te6edf3HASHTffd700}Ta5d6ff:/file/../secret.geojsonTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3excTff7b72.Td2a8ffvalueTff7b72.Td2a8ffcode Tff7b72== Ta5d6ff"Ta5d6ffpath_traversalTa5d6ff"


Tff7b72def Td2a8fftest_parse_nomadnet_requires_file_prefixTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4) Tff7b72as Te6edf3excTb4b4b4:
Te6edf3parse_nomadnet_file_urlTb4b4b4(Ta5d6fffTa5d6ff"Tffd700{Te6edf3HASHTffd700}Ta5d6ff:/page/index.muTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3excTff7b72.Td2a8ffvalueTff7b72.Td2a8ffcode Tff7b72== Ta5d6ff"Ta5d6ffnot_file_pathTa5d6ff"


Tff7b72def Td2a8fftest_parse_rngit_repo_urlTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3destTb4b4b4, Te6edf3groupTb4b4b4, Te6edf3repo Tff7b72= Te6edf3parse_rngit_repo_urlTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffrns://Tffd700{Te6edf3HASHTffd700}Ta5d6ff/public/mapsTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3dest Tff7b72== Te6edf3HASH
Tff7b72assert Te6edf3group Tff7b72== Ta5d6ff"Ta5d6ffpublicTa5d6ff"
Tff7b72assert Te6edf3repo Tff7b72== Ta5d6ff"Ta5d6ffmapsTa5d6ff"


Tff7b72def Td2a8fftest_parse_create_payload_nomadnetTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3specs Tff7b72= Te6edf3parse_create_payloadTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffkindTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffnomadnet_fileTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffurlTa5d6ff"Tb4b4b4: Ta5d6fffTa5d6ff"Tffd700{Te6edf3HASHTffd700}Ta5d6ff:/file/layer.kmzTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffrefresh_interval_secondsTa5d6ff"Tb4b4b4: T79c0ff30Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3specsTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3specsTb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffrefresh_interval_seconds Tff7b72== T79c0ff60


Tff7b72def Td2a8fftest_parse_create_payload_rngit_multi_pathTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3specs Tff7b72= Te6edf3parse_create_payloadTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffkindTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffrngit_filesTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffurlTa5d6ff"Tb4b4b4: Ta5d6fffTa5d6ff"Ta5d6ffrns://Tffd700{Te6edf3HASHTffd700}Ta5d6ff/group/repoTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffrefTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffv1.2.3Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpathsTa5d6ff"Tb4b4b4: Tb4b4b4[Ta5d6ff"Ta5d6ffa.geojsonTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffb/c.kmlTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3specsTb4b4b4) Tff7b72== T79c0ff2
Tff7b72assert Te6edf3specsTb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffref Tff7b72== Ta5d6ff"Ta5d6ffv1.2.3Ta5d6ff"
Tff7b72assert Te6edf3specsTb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffpath_or_repo_path Tff7b72== Ta5d6ff"Ta5d6ffa.geojsonTa5d6ff"
Tff7b72assert Te6edf3specsTb4b4b4[T79c0ff1Tb4b4b4]Tff7b72.Td2a8ffpath_or_repo_path Tff7b72== Ta5d6ff"Ta5d6ffb/c.kmlTa5d6ff"


Tff7b72def Td2a8fftest_parse_create_payload_rejects_bad_extensionTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4) Tff7b72as Te6edf3excTb4b4b4:
Te6edf3parse_create_payloadTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffkindTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffrngit_filesTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffurlTa5d6ff"Tb4b4b4: Ta5d6fffTa5d6ff"Ta5d6ffrns://Tffd700{Te6edf3HASHTffd700}Ta5d6ff/group/repoTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpathsTa5d6ff"Tb4b4b4: Tb4b4b4[Ta5d6ff"Ta5d6ffreadme.mdTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3excTff7b72.Td2a8ffvalueTff7b72.Td2a8ffcode Tff7b72== Ta5d6ff"Ta5d6ffunsupported_extensionTa5d6ff"


Tff7b72def Td2a8fftest_parse_create_payload_rejects_invalid_hashTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4) Tff7b72as Te6edf3excTb4b4b4:
Te6edf3parse_create_payloadTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffkindTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffnomadnet_fileTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffurlTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffzzzz:/file/a.geojsonTa5d6ff"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3excTff7b72.Td2a8ffvalueTff7b72.Td2a8ffcode Tff7b72== Ta5d6ff"Ta5d6ffinvalid_destination_hashTa5d6ff"


Tff7b72def Td2a8fftest_parse_create_payload_rejects_bad_refTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4)Tb4b4b4:
Te6edf3parse_create_payloadTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffkindTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffrngit_filesTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffurlTa5d6ff"Tb4b4b4: Ta5d6fffTa5d6ff"Ta5d6ffrns://Tffd700{Te6edf3HASHTffd700}Ta5d6ff/group/repoTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffrefTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff../evilTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpathsTa5d6ff"Tb4b4b4: Tb4b4b4[Ta5d6ff"Ta5d6ffa.geojsonTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)


Tff7b72def Td2a8fftest_repo_relpath_rejects_drive_and_nulTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787map_overlay_sources Tff7b72import Te6edf3_safe_repo_relpath

Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4) Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_safe_repo_relpathTb4b4b4(Ta5d6ff"Ta5d6ffC:/Windows/xTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3excTff7b72.Td2a8ffvalueTff7b72.Td2a8ffcode Tff7b72== Ta5d6ff"Ta5d6ffinvalid_pathTa5d6ff"
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4)Tb4b4b4:
Te6edf3_safe_repo_relpathTb4b4b4(Ta5d6ff"Ta5d6ffaTffea00\x00Ta5d6ffbTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8fftest_nomadnet_path_rejects_nulTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3OverlaySourceParseErrorTb4b4b4)Tb4b4b4:
Te6edf3parse_nomadnet_file_urlTb4b4b4(Ta5d6fffTa5d6ff"Tffd700{Te6edf3HASHTffd700}Ta5d6ff:/file/aTffea00\x00Ta5d6ffb.geojsonTa5d6ff"Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────